﻿namespace IcqSharp
{
    public enum Family : ushort
    {
        Service = 0x0001,
        Location = 0x0002,
        Buddy = 0x0003,
        Message = 0x0004,
        BOS = 0x0009,
        Lookup = 0x000a,
        Stats = 0x000b,
        ChatNavigation = 0x000d,
        Chat = 0x000e,
        Avatar = 0x0010,
        Lists = 0x0013,
        Extensions = 0x0015,
        Authorization = 0x0017,
        Directory = 0x0025,
    }

    enum AuthorizationFamilySubtype : ushort
    {
        Error = 0x0001,
        LoginRequest = 0x0002,
        LoginReply = 0x0003,
        RegistrationReq = 0x0004,
        NewUIN = 0x0005,
        AuthRequest = 0x0006,
        AuthKey = 0x0007,
        RequestImage = 0x000C,
        RegAuthImage = 0x000D
    }
    enum ServiceFamilySubtype : ushort
    {
        Error = 0x0001,
        ClientReady = 0x0002,
        ServerReady = 0x0003,
        NewService = 0x0004,
        ServerRedirectService = 0x0005,
        ClientReqRateInfo = 0x0006,
        ServerRateInfo = 0x0007,
        ClientRateAck = 0x0008,
        ServerRateChange = 0x000a,
        ServerPause = 0x000b,
        ClientPauseAck = 0x000c,
        ServerResume = 0x000d,
        ClientReqInfo = 0x000e,
        ServerNameInfo = 0x000f,
        EvilNotice = 0x0010,
        ClientSetIdle = 0x0011,
        ServerMigrationReq = 0x0012,
        ServerMotd = 0x0013,
        ClientFamilies = 0x0017,
        ServerFamilies2 = 0x0018,
        ClientSetStatus = 0x001e,
        ServerExtStatus = 0x0021,
    }
    enum ListsFamilySubtype : ushort
    {
        Error = 0x0001,
        CliReqLists = 0x0002,
        SrvReplyLists = 0x0003,
        CliRequest = 0x0004,
        CliCheck = 0x0005,
        List = 0x0006,
        GotList = 0x0007,
        AddToList = 0x0008,
        UpdateGroup = 0x0009,
        RemoveFromList = 0x000A,
        Ack = 0x000E,
        UpToDate = 0x000F,
        CliModifyStart = 0x0011,
        CliModifyEnd = 0x0012,
        GrantAuth = 0x0014,
        AuthGranted = 0x0015,
        RevokeAuth = 0x0016,
        RequestAuth = 0x0018,
        AuthRequest = 0x0019,
        CliAuthResponse = 0x001A,
        SrvAuthResponse = 0x001B,
        YouWereAdded = 0x001C,
    }
    enum LocationFamilySubtype : ushort
    {
        Error = 0x0001,
        CliReqRights = 0x0002,
        RightsReply = 0x0003,
        SetUserInfo = 0x0004,
        ReqUserInfo = 0x0005,
        UserInfoReply = 0x0006,
        QryUserInfo = 0x0015
    }
    enum BuddyFamilySubtype : ushort
    {
        Error = 0x0001,
        CliReqBuddy = 0x0002,
        SrvReplyBuddy = 0x0003,
        AddToList = 0x0004, // deprecated
        RemoveFromList = 0x0005, // deprecated
        NotifyRejected = 0x000a,
        Online = 0x000b,
        Offline = 0x000c,
        AddToTempList = 0x000f,
        RemoveFromTempList = 0x0010
    }
    enum MessageFamilySubtype : ushort
    {
        Error = 0x0001,
        CliSetParams = 0x0002,
        CliResetParams = 0x0003,
        CliReqICBM = 0x0004,
        SrvReplyICBM = 0x0005,
        SrvSend = 0x0006,
        SrvRecv = 0x0007,
        SrvMissedMessage = 0x000A,
        Response = 0x000B,
        SrvAck = 0x000C,
        CliReqOffline = 0x0010,
        MTN = 0x0014,
        SrvOfflineReply = 0x0017
    }
    enum PrivacyFamilySubtype : ushort
    {
        Error = 0x0001,
        ReqRights = 0x0002,
        RightsReply = 0x0003,
        AddVisible = 0x0005,
        RemoveVisible = 0x0006,
        AddInvisible = 0x0007,
        RemoveInvisible = 0x0008,
        ServiceError = 0x0009,
        AddTempVisible = 0x000A,
        RemoveTempVisible = 0x000B
    }
    enum ExtensionsFamilySubtype : ushort
    {
        Error = 0x0001,
        CliRequest = 0x0002,
        SrvReply = 0x0003,
        SrvUpdate = 0x0005,
    }


}
